type PointType = {
  x: number,
  y: number,
  z?: number
}

// 声明而不是赋值
interface PointType2 {
  x: number,
  y: number,
  z?: number
}

function printCoordinate(point: PointType2) {

}

// 别名与接口的区别
// 1. type类型的使用范围更广,接口类型只能用于声明对象
type IDType = number | string

// 2. 声明对象时，接口可以多次声明
interface IPoint {
  x: number,
  y: number
}
interface IPoint {
  x: number,
  y: number,
  z: number
}

// 3. 接口支持继承
interface IPerson {
  name: string,
  age: number
}
interface IKun extends IPerson {
  praticeTinme: string
}

// 4. 接口可以被类实现
class Person implements IPerson {

}

export {}